package com.itheima.bigevent.mapper;

import com.itheima.bigevent.pojo.Article;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface ArticleMapper {

    /**
     * 新增文章
     *
     * @param article 新增的文章内容
     * @return 受影响行数
     */
    @Insert("INSERT INTO article(title, content, cover_img, state, category_id, create_user, create_time, update_time) VALUES (#{title}, #{content}, #{coverImg}, #{state}, #{categoryId}, #{createUser}, #{createTime}, #{updateTime})")
    int add(Article article);

    /**
     * 分页获取文章列表
     * 因为SQL中需要使用动态SQL语句，所以这里不用注解写，而是用映射配置文件（即mapper.xml文件）编写SQL语句，resources目录下，创建与当前Mapper类相同的目录结构（即com/itheima/bigevent/mapper/），创建与当前接口同名的映射配置文件（即ArticleMapper.xml文件），然后在其中编写SQL语句
     *
     * @param createUser 创建者userID
     * @param categoryId 分类ID（非必填）
     * @param state      文章状态（非必填），只能是“已发布”或“草稿”
     * @return 文章列表
     */
    List<Article> list(Integer createUser, String categoryId, String state);
}
